'use strict';

const Controller = require('egg').Controller;
const OSS = require('ali-oss')
const path = require("path")

const client = new OSS({
    // yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
    region: 'oss-cn-beijing',
    // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
    accessKeyId: 'LTAI5tK6kteSpBd5VH68ngFL',
    accessKeySecret: 'RsoEDSobfQonH2h1ycqPJPVJw9jyGa',
    // 填写Bucket名称。
    bucket: 'caoxiang666',
});

class ImageController extends Controller {
    async index() {
        const {
            ctx
        } = this;

        try {
            const result = await client.list();
            ctx.body = {
                code: 200,
                msg: '查询成功',
                data: result
            }
        } catch (err) {
            ctx.body = {
                code: 404,
                msg: '查询失败',
            }
        }
    }
    async upUrl() {
        const { ctx } = this;
        // ctx.body=123
        try {
            // file.filename // 图片名
            // file.filepath // 当前图片的路径
            const file = this.ctx.request.files[0];
            let result = await client.put(file.filename, file.filepath);
            this.ctx.body = {
                code: 200,
                msg: '上传成功',
                data: result
            }
        } catch (err) {
            this.ctx.body = {
                code: 404,
                msg: '上传失败',
                file:ctx
            }
        }
    }
    async get() {
        let { name } = this.ctx.request.body;
        try {
            let result = await client.get(name);
            this.ctx.body = {
                code: 200,
                msg: '下载成功',
                data: result.res.requestUrls[0]
            }
        } catch (err) {
            this.ctx.body = {
                code: 404,
                msg: '下载失败',
            }
        }
    }
}

module.exports = ImageController;
